//package cn.iocoder.ny.module.mall.controller.admin.pay;
//
//import cn.hutool.core.io.IoUtil;
//import cn.iocoder.ny.module.mall.domain.*;
//import cn.iocoder.ny.module.mall.domain.vo.MallWeChatPayVo;
//import cn.iocoder.ny.module.mall.service.*;
//import cn.iocoder.ny.module.mall.service.impl.MallProductSpecificationSerivceImpl;
//import cn.iocoder.ny.module.mall.utils.wxpay.AjaxResult;
//import cn.iocoder.ny.module.mall.utils.wxpay.ResultModel;
//import cn.iocoder.yudao.module.system.util.OkHttpUtils;
//import com.alibaba.fastjson2.JSON;
//import com.fasterxml.jackson.databind.JsonNode;
//import com.fasterxml.jackson.databind.ObjectMapper;
//import com.wechat.pay.java.core.RSAAutoCertificateConfig;
//import com.wechat.pay.java.core.RSAPublicKeyConfig;
//import com.wechat.pay.java.core.notification.NotificationConfig;
//import com.wechat.pay.java.core.notification.NotificationParser;
//import com.wechat.pay.java.core.notification.RSAPublicKeyNotificationConfig;
//import com.wechat.pay.java.core.notification.RequestParam;
//import com.wechat.pay.java.core.util.GsonUtil;
//import com.wechat.pay.java.service.payments.jsapi.JsapiServiceExtension;
//import com.wechat.pay.java.service.payments.jsapi.model.Amount;
//import com.wechat.pay.java.service.payments.jsapi.model.*;
//import com.wechat.pay.java.service.payments.model.Transaction;
//import com.wechat.pay.java.service.refund.RefundService;
//import com.wechat.pay.java.service.refund.model.*;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.bind.annotation.PathVariable;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//import org.springframework.web.client.RestTemplate;
//
//import javax.annotation.security.PermitAll;
//import javax.servlet.http.HttpServletRequest;
//import java.io.UnsupportedEncodingException;
//import java.math.BigDecimal;
//import java.math.RoundingMode;
//import java.net.URLEncoder;
//import java.util.HashMap;
//import java.util.Map;
//import java.util.Optional;
//import java.util.concurrent.CompletableFuture;
//
///**
// * 微信支付
// */
//@RestController
//@RequestMapping("v3pay")
//public class MallPayWnController {
//
//    private static final Logger log = LoggerFactory.getLogger(MallPayWnController.class);
//
//
//    @Autowired
//    IMallWxPayService mallPayService;
//
//    //    @Autowired
////    private IMallOrderDetailService mallOrderDetailService;
//    @Autowired
//    MallProductSpecificationSerivceImpl mallProductSpecificationSerivce;
//
//    @Autowired
//    IMallOrderService iMallOrderService;
//
//    @Autowired
//    IMallOrderDetailService iMallOrderDetailService;
//
//    @Autowired
//    IMallConfigService mallConfigService;
//
//
//    @Autowired
//    private RestTemplate restTemplate;
//
//    private final IMallProductSpecificationSerivce iMallProductSpecificationSerivce;
//
//    public MallPayWnController(IMallProductSpecificationSerivce iMallProductSpecificationSerivce) {
//        this.iMallProductSpecificationSerivce = iMallProductSpecificationSerivce;
//    }
//
//
//    @PermitAll
//    @RequestMapping("/wnmppay")
//    public ResultModel wnmppay(@RequestBody HashMap<String, Object> inmap) {
//        log.info("seconpay-backup-mppay {}", JSON.toJSONString(inmap));
//        //todo 尝试增加
//        String tid2 = inmap.get("tid2").toString(); //0.01
//        long startTime = System.nanoTime();
//        inmap.put("startTime",startTime);
//        String okfz = Optional.ofNullable(inmap.get("okfz"))
//                .map(Object::toString)
//                .orElse(null);
//        ResultModel<PrepayWithRequestPaymentResponse> resultModel = new ResultModel<>();
//        String bossphone = Optional.ofNullable(inmap.get("bossphone"))
//                .map(Object::toString)
//                .orElse("no");
//
//        //抄一段bossphone
//        String cks = Optional.ofNullable(inmap.get("cks"))
//                .map(Object::toString)
//                .orElse("cks");
//
//        MallConfigSimple mallConfigSimple = null;
//        String way = "";
//        if(11 ==  bossphone.length()){
//            //走新支付
//            way = "pc";
//            mallConfigSimple = getConfigPC(bossphone);
//            //mallConfigSimple = getConfigOA(inmap);
//            if(mallConfigSimple == null ){
//                //如果pc支付出问题
//                log.info("PC支付出问题，很有可能没有配置");
//                mallConfigSimple = getConfigOA(inmap);
//                way = "oa";
//                if(mallConfigSimple == null){
//                    resultModel.setIsSuccess(false);
//                    resultModel.setCode("lgerror");
//                    resultModel.setRemarkMessage1("OA 支付异常1");
//                    return resultModel;
//                }
//            }
//        }else{
//            way = "oa";
//            mallConfigSimple = getConfigOA(inmap);
//            if(mallConfigSimple == null){
//                resultModel.setIsSuccess(false);
//                resultModel.setCode("lgerror");
//                resultModel.setRemarkMessage1("OA 支付异常1");
//                return resultModel;
//            }
//        }
//
//        if (mallConfigSimple.getMch_id() == null) {
//            resultModel.setIsSuccess(false);
//            resultModel.setCode("lgerror");
//            resultModel.setRemarkMessage1("OA 支付异常2");
//            return resultModel;
//        }
//
//
//        //第一部分post
//        String merchantId2 = mallConfigSimple.getMch_id();
//        String privateKeyString2 = mallConfigSimple.getPrivate_key();
//        String merchantSerialNumber2 = mallConfigSimple.getMch_serial_number();
//        String apiV3Key2 = mallConfigSimple.getApi_v3_key();
//        //appId2 = mallConfigSimple.getAppid();
//
//        //第二部分前端
//        String appId2 = inmap.get("appid2").toString();
//        String aid = inmap.get("aid2").toString();
//        String pid = inmap.get("pid2").toString();
//        //String outTradeNo2 = inmap.get("orderid2").toString();
//        String s_total2 = inmap.get("total2").toString(); //0.01
//        //tid
//        //String tid2 = inmap.get("tid2").toString(); //0.01
//
//        //String okfz = inmap.get("okfz").toString(); //前端传一个是否分账
//        // 可以替换为默认值，如 "default"
//
//        BigDecimal bd = new BigDecimal(s_total2);
//
//        // 乘以 100 转换为分
//        BigDecimal bdInCents = bd.multiply(new BigDecimal("100"));
//
//        // 设置小数位数为0，并指定四舍五入模式，避免精度问题
//        bdInCents = bdInCents.setScale(0, RoundingMode.DOWN);
//
//        // 转换为 Integer 类型
//        int total2 = bdInCents.intValue();
//
//        String openid2 = inmap.get("openid2").toString();
//
//
//        //回调
//        //用test1 SAAS
//        //String paynotifyurl = "https://test1.01yingxiao.com/admin-api/v2pay/notify/payNotify/";
//        //String paynotifyurl = "http://2rz24qd15207.vicp.fun/admin-api/v2pay/notify/payNotify/";
//        //String paynotifyurl = "https://secondpay.cmzg.vip/admin-api/v2pay/notify/payNotify/";
//        // 第二台服务器
//         //String paynotifyurl = "https://secondpaybackup.cmzg.vip/admin-api/v2pay/notify/payNotify/";
//        //String paynotifyurl = "https://nysaas.mynatapp.cc/admin-api/v2pay/notify/payNotify/";
//        //String paynotifyurl = "https://nysaas.mynatapp.cc/admin-api/v2pay/notify/payNotify/";
//
//        //新版支付。配置调PC后台。卢哥
//        //String paynotifyurl = "https://secondpay.cmzg.vip/admin-api/v2pay/notify/notifyPhone/";
//        String paynotifyurl = "https://secondpaybackup.cmzg.vip/admin-api/v2pay/notify/notifyPhone/";
//        //String paynotifyurl = "https://nysaas.mynatapp.cc/admin-api/v2pay/notify/notifyPhone/"; //卢哥
//
//
//
//        RSAPublicKeyConfig config2 = null;
//        String gong = null;
//        String gongid = null;
//        if ("2".equalsIgnoreCase(mallConfigSimple.getPay_mode().toString())) {
//            gong = mallConfigSimple.getPubkey_pem();
//            gongid = mallConfigSimple.getPubkey_id();
//            config2 = new RSAPublicKeyConfig.Builder()
//                    .merchantId(merchantId2)
//                    .privateKey(privateKeyString2)
//                    .merchantSerialNumber(merchantSerialNumber2)
//                    .publicKey(gong)
//                    .publicKeyId(gongid)
//                    .apiV3Key(apiV3Key2)
//                    .build();
//        }
//
//        //String notifyUrl2 = paynotifyurl + appId2 + "/" + aid + "/" + pid + "/" + outTradeNo2;
//        //String notifyUrl2 = paynotifyurl + appId2 + "/" + aid + "/" + pid + "/" + tid2;
//        //todo String cks_flag+
//        String cks_flag = "cks"+cks;
//        //String notifyUrl2 = paynotifyurl + appId2 + "/" + aid + "/" + pid + "/" + tid2 +"/"+bossphone + "/"+way;
//        String notifyUrl2 = paynotifyurl + appId2 + "/" + aid + "/" + pid + "/" + tid2 +"/"+bossphone + "/"+way+"/"+cks_flag;
//        log.info("支付回到{}", notifyUrl2);
//        JsapiServiceExtension service = null;
//        // 构建service
//        try {
//            if ("2".equalsIgnoreCase(mallConfigSimple.getPay_mode())) {
//                service = new JsapiServiceExtension.Builder().config(config2).build();
//            } else {
//                RSAAutoCertificateConfig config = new RSAAutoCertificateConfig.Builder()
//                        .merchantId(merchantId2)
//                        .privateKey(privateKeyString2)
//                        .merchantSerialNumber(merchantSerialNumber2)
//                        .apiV3Key(apiV3Key2)
//                        .build();
//                service = new JsapiServiceExtension.Builder().config(config).build();
//            }
//        } catch (Exception ex) {
//            resultModel.setIsSuccess(false);
//            resultModel.setCode("lgerror2");
//            return resultModel;
//        }
//
//        // 构建service
//
//        //构建请求
//        PrepayRequest request = new PrepayRequest();
//        //基础信息
//        request.setAppid(appId2);
//        request.setMchid(merchantId2);
//        request.setDescription("门店服务");//商品描述
//        //前端
////        request.setOutTradeNo(outTradeNo2);//商户系统内部订单号
//        request.setOutTradeNo(tid2);//商户系统内部订单号
//
//        HashMap<String, Object> attachmap2 = new HashMap<>();
//        attachmap2.put("tid", tid2);
//        attachmap2.put("feeint",total2);
//        attachmap2.put("fee", s_total2);
//        attachmap2.put("iii", inmap.get("pid2").toString());
//        attachmap2.put("okfz",okfz);
//
//
//        String jsonString = JSON.toJSONString(attachmap2);
//        log.info("查看支付attach的string对象{}", jsonString);
//
//
//        request.setAttach(jsonString);//附加数据
//        request.setNotifyUrl(notifyUrl2);
//        //订单金额信息
//        Amount amount = new Amount();
//        //前端金额
//        amount.setTotal(total2);
//        request.setAmount(amount);
//        //用户在直连商户appid下的唯一标识。 下单前需获取到用户的Openid
//        Payer payer = new Payer();
//        //前端
//        payer.setOpenid(openid2);
//        request.setPayer(payer);
//        //前端传
//        if("yes".equalsIgnoreCase(okfz)){
//            SettleInfo settleInfo = new SettleInfo();
//            settleInfo.setProfitSharing(true);
//            request.setSettleInfo(settleInfo);
//        }
//        try {
//            PrepayWithRequestPaymentResponse response = service.prepayWithRequestPayment(request);
//            log.info("JSAPI下单-结果：{}", response.toString());
//
//            resultModel.setIsSuccess(true);
//            resultModel.setData(response);
//        } catch (Exception ex) {
//            String s1 =  JSON.toJSONString(ex);
//            String s2 = JSON.toJSONString(inmap);
//            log.info("JSAPI下单-异常返回：{}--{}", s1,s2);
//            //setException(resultModel, ex);
//            resultModel.setIsSuccess(false);
//            resultModel.setCode("lgerror");
//            resultModel.setRemarkMessage1("返回"+s1+"此入参"+s2);
//        }
//        long endTime = System.nanoTime();
//        long duration = endTime - startTime; // 单位为纳秒
//        long millis = duration / 1_000_000;
//        long seconds = duration / 1_000_000_000;
//        String strMillis = String.valueOf(millis);
//        String strSeconds = String.valueOf(seconds);
//        resultModel.setDotime(duration);
//        resultModel.setRemarkTime1("毫秒:"+strMillis+"  秒："+strSeconds);
//        log.info("JSAPI下单-结束：{}", com.alibaba.fastjson.JSON.toJSONString(resultModel));
//        return resultModel;
//    }
//
//
//
//    //新版本因为分账需要用到bossphone
//    @PermitAll
//    @RequestMapping("/wnnotify/notifyPhone/{appId}/{aid}/{pid}/{orderNo}/{bossphone}/{way2}/{cksflag}")
//    public ResultModel<Transaction> wnnotifyPhone(HttpServletRequest request,
//                                                @PathVariable("pid") String pid,
//                                                @PathVariable("aid") String aid,
//                                                @PathVariable("appId") String appId,
//                                                @PathVariable("orderNo") String tid2,
//                                                @PathVariable("bossphone") String bossphone,
//                                                @PathVariable("way2") String way,
//                                                @PathVariable("cksflag") String cksflag
//                                                ) {
//        log.info("新版本secondpay-backup 支付回调lg {}-{}-{}-{}-{}-{}", appId, aid, pid, tid2,bossphone,way);
//        HashMap<String, Object> inmap = new HashMap<>();
//        inmap.put("aid2", aid);
//        inmap.put("pid2", pid);
//
//        MallConfigSimple mallConfigSimple = null;
//
//        mallConfigSimple = getConfigPC(bossphone);
//        if(mallConfigSimple == null ){
//            log.info("PC获取PC支付信息失败{}-{}{}-{}{}-{}",appId, aid, pid, tid2,bossphone,way);
//            mallConfigSimple = getConfigOA(inmap);
//            if(mallConfigSimple == null ){
//                log.info("OA获取PC支付信息失败{}-{}{}-{}{}-{}",appId, aid, pid, tid2,bossphone,way);
//            }
//        }
//
//
//        //第一部分post
//        String merchantId2 = mallConfigSimple.getMch_id();
//        String privateKeyString2 = mallConfigSimple.getPrivate_key();
//        String merchantSerialNumber2 = mallConfigSimple.getMch_serial_number();
//        String apiV3Key2 = mallConfigSimple.getApi_v3_key();
//
//        NotificationConfig config2 = null;
//        if ("2".equalsIgnoreCase(mallConfigSimple.getPay_mode().toString())) {
//            config2 = new RSAPublicKeyNotificationConfig.Builder()
//                    .publicKey(mallConfigSimple.getPubkey_pem())
//                    .publicKeyId(mallConfigSimple.getPubkey_id())
//                    .apiV3Key(apiV3Key2)
//                    .build();
//        }
//
//        ResultModel<Transaction> resultModel = new ResultModel<>();
//
//        try {
//            String body = IoUtil.getUtf8Reader(request.getInputStream()).readLine();
//            RequestParam requestParam = new RequestParam.Builder()
//                    .serialNumber(request.getHeader("Wechatpay-Serial"))
//                    .nonce(request.getHeader("Wechatpay-Nonce"))
//                    .signature(request.getHeader("Wechatpay-Signature"))
//                    .timestamp(request.getHeader("Wechatpay-Timestamp"))
//                    .signType(request.getHeader("Wechatpay-Signature-Type"))
//                    .body(body)
//                    .build();
//
//            NotificationParser parser = null;
//            if ("2".equalsIgnoreCase(mallConfigSimple.getPay_mode())) {
//                parser = new NotificationParser(config2);
//            } else {
//                RSAAutoCertificateConfig config = new RSAAutoCertificateConfig.Builder()
//                        .merchantId(merchantId2)
//                        .privateKey(privateKeyString2)
//                        .merchantSerialNumber(merchantSerialNumber2)
//                        .apiV3Key(apiV3Key2)
//                        .build();
//                parser = new NotificationParser(config);
//            }
//            // 以支付通知回调为例，验签、解密并转换成 Transaction
//            Transaction transaction = parser.parse(requestParam, Transaction.class);
//            //-----------------------支付成功通知
//            String openid = transaction.getPayer().getOpenid();
//            String qjson = transaction.getAttach();
//
//            //修改 把sq变成sqjson
//            log.info("购买的库存sqjson：" + qjson);
//            // 使用 Fastjson 解析 JSON 字符串到 Map
//            Map<String, Object> map = JSON.parseObject(qjson, Map.class);
//            log.info("Map-结束：{}", JSON.toJSONString(map));
//            String tid = map.get("tid").toString();
//            String fee = map.get("fee").toString();
//            String iii = map.get("iii").toString();
//
////            Object obj = map.get("feeint");
////            if (obj instanceof Integer) {
////                int feeint = (Integer) obj;
////            } else {
////                // 处理异常情况
////            }
//            int feeint = (Integer) map.get("feeint");
//            String okfz = Optional.ofNullable(map.get("okfz"))
//                    .map(Object::toString)
//                    .orElse(null); // 可以替换为默认值，如 "default"
//
//            //todo 调董的接口1
//            //todo 调董的接口2
//
//            String transaction_id = transaction.getTransactionId();
//
//            String url = "https://cm.cmzg.vip/app/index.php?i=" +
//                    iii + "&c=entry&do=api_pay_result&m=water_salegroup3&tid=" +
//                    tid + "&fee=" +
//                    fee + "&openid=" +
//                    openid + "&transaction_id=" + transaction_id;
//
//            //支付成功 todo 1更改订单状态 支付时间
//            //支付成功 todo 2更改详情状态。
//            log.info("冬月的支付url {}", url);
//            ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
//            String confighttp = responseEntity.getBody();
//
//            //String dedeurl = "https://2rz24qd15207.vicp.fun/admin-api/v2pay/dede";
////            String dedeurl = "https://nysaas.mynatapp.cc/admin-api/v2pay/dede";
////            HashMap<String,Object> demap3 = new HashMap<>();
////            demap3.put("返回数据",confighttp);
////            ResponseEntity<String> responseEntity3 = restTemplate.postForEntity(dedeurl,demap3,String.class);
//
////            HashMap<String,Object> demap4 = new HashMap<>();
////            demap4.put("todong",confighttp);
////            ResponseEntity<String> responseEntity4 = restTemplate.postForEntity(dedeurl,demap4,String.class);
//
//
//            log.info("夏天oa的新订单开始");
//            String dytid2 = tid2;
//            String dbw2_tid2_ordersn = dytid2.substring(1);
//            Integer detailid = findOrderBytid2(dbw2_tid2_ordersn);
//            updateNewOrderbyNid("1"+detailid); //拼团是1  方案1
//            //updateNewOrderbyTid2(dytid2);  //方案2  不要用
//            log.info("夏天oa的新订单结束");
//
//            ///=============todo 通知其他系统 通知。通知java 还是php? 目前就为了还库存======
//
//
//            //调小卢的分账
//            if("yes".equalsIgnoreCase(okfz)) {
//                log.info("调小卢的分账开始");
//                mallConfigSimple.setAppid(appId);
//                HashMap<String, Object> fzmap = new HashMap<>();
//                fzmap.put("transactionId", transaction_id);
//                fzmap.put("orderAmount", feeint); //分
//                fzmap.put("merchantId", mallConfigSimple.getMch_id()); //
//                fzmap.put("privateKey", mallConfigSimple.getPrivate_key()); //
//                fzmap.put("merchantSerialNumber", mallConfigSimple.getMch_serial_number()); //
//                fzmap.put("apiV3Key", mallConfigSimple.getApi_v3_key()); //
//                fzmap.put("appId", appId);
//                //  log.info("支付回调lg {}-{}-{}-{}", appId, aid, pid, orderNo);
//                fzmap.put("aid", aid);
//                fzmap.put("pid", pid);
//                fzmap.put("orderNo", tid2);
//                fzmap.put("payMode", mallConfigSimple.getPay_mode());
//                fzmap.put("gongId", mallConfigSimple.getPubkey_id());
//                fzmap.put("publicKeyPem", mallConfigSimple.getPubkey_pem());
//                fzmap.put("zfType", "pt");
//                fzmap.put("bossphone", bossphone);
//                fzmap.put("way",way);
//
//                //System.out.println("主线程开始");
//                CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> {
//                    try {
//                        Thread.sleep(60001);
//                        String result = toFZApi(fzmap);
//                        return result;
//                    } catch (InterruptedException e) {
//                        Thread.currentThread().interrupt();
//                        return "任务中断了";
//                    }
//                });
//                future.thenAccept(result -> {
//                    //System.out.println("异步任务返回结果: " + result);
//                    log.info("异步任务返回结果:{}", result);
//                });
//                log.info("调小卢的分账结束");
//            }
//            if("yes".equalsIgnoreCase(cksflag)){
//                //要检查库存
//                // 异步调一下库存
//                CompletableFuture<Void> future_okstock = CompletableFuture.runAsync(() -> {
//                    try {
//                        HashMap<String, Object> okstock = new HashMap<>();
//                        okstock.put("aid", aid);
//                        okstock.put("pid", pid);
//                        okstock.put("atype","pt");
//                        okstock.put("orderNo", tid2);
//                        toPayOkStock(okstock);
//                    } catch (Exception e) {
//                        log.info("支付成功通知改库存异常 {}",JSON.toJSONString(e));
//                    }
//                });
//            }
//            //--------------------支付成功结束
//            resultModel.setIsSuccess(true);
//            resultModel.setData(transaction);
//
//        } catch (Exception ex) {
//            log.info("异常aaa：{}", GsonUtil.getGson().toJson(ex));
//            //setException(resultModel, ex);
//        }
//        log.info("支付通知-结束：{}", GsonUtil.getGson().toJson(resultModel));
//        return resultModel;
//    }
//
//
//
//
//    ////todo 通过tid2...因为支付是通过tid2的。  但是oa 【新订单】记录的是detailid
//    public void updateNewOrderbyNid(String Nid) {
//        try {
//            //User user = new User("John", "john_new@example.com");
//            Map<String, Object> params = new HashMap<>();
//            params.put("order", "order");
//            // 本来是这样 http://example.com/users/{id}
//            // 夏天的是这样 https://gateway.cmxz.com.cn/oa/api/new/order/
//            String xia = "https://gateway.cmxz.com.cn/oa/api/new/{userId}/";   //当然也可以last = "order"
//            // URI变量映射
//            Map<String, String> uriVariables = new HashMap<>();
//            uriVariables.put("userId", "order"); // 替换 {userId} 占位符
//
//            // 使用 Map 构建请求体
//            Map<String, Object> requestBody = new HashMap<>();
//            requestBody.put("nid", Nid);
//            //requestBody.put("option5", "xg");
//            requestBody.put("status_pay", 1);
//            restTemplate.put(xia,requestBody ,uriVariables);
//        } catch (Exception ex) {
//            log.info(JSON.toJSONString(ex));
//        }
//    }
//
//
//
//
//    public MallConfigSimple getConfigOA(HashMap<String, Object> inmap) {
//
//        String url = null; //180DB 硬塞
//        if (inmap.containsKey("test")) {
//            url = "https://test1.01yingxiao.com/admin-api/v2pay/apimerchant";
//        } else {
//            //url = "https://oa.cmzg.vip/api/order/pay/wx";
//            url = "https://gateway.cmxz.com.cn/oa/api/order/pay/wx";
//        }
//
//        HashMap<String, Object> postmap = new HashMap<>();
//        postmap.put("aid", inmap.get("aid2").toString());
//        postmap.put("pid", inmap.get("pid2").toString());
//
//        ResponseEntity<String> responseEntity = null;
//        try {
//            responseEntity = restTemplate.postForEntity(url, postmap, String.class);
//            String confighttp = responseEntity.getBody();
//            MallConfigSimple mallConfigSimple = JSON.parseObject(confighttp, MallConfigSimple.class);
//            return mallConfigSimple;
//        } catch (Exception e) {
//            log.info("拼团OA异常");
//            return null;
//        }
//    }
//
//    public CmzgMerchantPayConfig getConfigPCapi(String  bossphone) {
//
//        //String url = "http://192.168.2.104:48081/admin-api/cmzgMerchantPayConfig/queryBossFzConfig";
//        String url ="https://back.smartshopkeeper.com/admin-api/cmzgMerchantPayConfig/queryBossFzConfig";
//
//        HashMap<String, Object> postmap = new HashMap<>();
//        postmap.put("bossphone", bossphone);
//        ResponseEntity<String> responseEntity = null;
//        try {
//            responseEntity = restTemplate.postForEntity(url, postmap, String.class);
//        } catch (Exception e) {
//            log.info("PC版支付异常");
//            return null;
//        }
//        String confighttp = responseEntity.getBody();
//        //对象的对象 在data下面
//        ObjectMapper mapper = new ObjectMapper();
//        try{
//            JsonNode jsonNode = mapper.readTree(responseEntity.getBody());
//            // 直接读取可能的双层JSON
//            if (jsonNode.isTextual()) { // 如果它是文本，说明可能是再次序列化的JSON
//                String actualJson = jsonNode.asText();
//                jsonNode = mapper.readTree(actualJson); // 再解析一次
//            }
//
//            if (jsonNode.has("data")) {
//                String data = jsonNode.get("data").toString();
//                CmzgMerchantPayConfig c = mapper.readValue(data, CmzgMerchantPayConfig.class);
//                //data有时值
//                return c;
//            } else {
//                //System.out.println("JSON does not contain 'id' field.");
//                return null;
//            }
//
//        }catch (Exception e){
//            log.info("configPC 异常{}",JSON.toJSONString(e));
//        }
//
//        return null;
//    }
//
//    private MallConfigSimple getConfigPC(String bossphone){
//        CmzgMerchantPayConfig cmzgMerchantPayConfig = getConfigPCapi(bossphone);
//        if(cmzgMerchantPayConfig != null){
//            MallConfigSimple mallConfigSimple = new MallConfigSimple();
//            mallConfigSimple.setAid(null);
//            mallConfigSimple.setPid(null);
//            mallConfigSimple.setAppid(null);
//            mallConfigSimple.setPay_mode(cmzgMerchantPayConfig.getPayMode());
//            mallConfigSimple.setMch_id(cmzgMerchantPayConfig.getMchId());
//            mallConfigSimple.setPrivate_key(cmzgMerchantPayConfig.getPrivateKey());
//            mallConfigSimple.setMch_serial_number(cmzgMerchantPayConfig.getMchSerialNumber());
//            mallConfigSimple.setApi_v3_key(cmzgMerchantPayConfig.getApiV3Key());
//            mallConfigSimple.setApiclient_cert(cmzgMerchantPayConfig.getApiclientCert());
//            mallConfigSimple.setPubkey_id(cmzgMerchantPayConfig.getPubkeyId());
//            mallConfigSimple.setPubkey_pem(cmzgMerchantPayConfig.getPubkeyPem());
//            return mallConfigSimple;
//        }
//        return null;
//    }
//
//
//
//
//
//    @PermitAll
//    @RequestMapping("/testgetFzlchSimple2")
//    public HashMap testgetFzlchSimple2() {
//        HashMap<String, Object> inmap = new HashMap<>();
//        inmap.put("mobile","13382055689");
//        inmap.put("test","yesssss");
//        FzlchSimple fzlchSimple = getFzlchSimple(inmap);
//        if(fzlchSimple.isData()){
//            //true
//            log.info("true");
//        }else{
//            //false
//            log.info("false  没有开启分账");
//        }
//        return null;
//    }
//
//
//    public String toFZApi(HashMap<String, Object> fzmap) {
//        log.info("我就执行下而已{}",JSON.toJSONString(fzmap));
//        String url =  "https://back.smartshopkeeper.com/admin-api/wxFz/profitSharingprofitSharing";
//        //String url = "http://192.168.2.104:48081/admin-api/wxFz/profitSharing";
////        if (fzmap.containsKey("test")) {
////            //url = "http://192.168.2.104:48081/admin-api/wxFz/profitSharing";
////            //https://back.smartshopkeeper.com/admin-api/
////            url = "https://back.smartshopkeeper.com/admin-api/wxFz/profitSharing";
////        } else {
////            //url = "https://oa.cmzg.vip/api/order/pay/wx";
////            url = "http://192.168.2.104:48081/admin-api/wxFz/profitSharing";
////            //url = "https://back.smartshopkeeper.com/admin-api/wxFz/profitSharing";
////        }
//
////        HashMap<String, Object> postmap = new HashMap<>();
////        postmap.put("mobile", inmap.get("mobile").toString());
//        ResponseEntity<String> responseEntity = null;
//        try {
//            responseEntity = restTemplate.postForEntity(url, fzmap, String.class);
//            log.info("居然不是异常{}",JSON.toJSONString(responseEntity));
//            return JSON.toJSONString(responseEntity);
//        } catch (Exception e) {
//            log.info("异常{}",JSON.toJSONString(e));
//            return "err";
//        }
//    }
//
//    public String toPayOkStock(HashMap<String, Object> fzmap) {
//        log.info("我就执行下而已{}",JSON.toJSONString(fzmap));
//        String url =  "https://back.smartshopkeeper.com/admin-api/pt/wnform/wnformback";
//        ResponseEntity<String> responseEntity = null;
//        try {
//            responseEntity = restTemplate.postForEntity(url, fzmap, String.class);
//            log.info("居然不是异常{}",JSON.toJSONString(responseEntity));
//            return JSON.toJSONString(responseEntity);
//        } catch (Exception e) {
//            log.info("异常{}",JSON.toJSONString(e));
//            return "err";
//        }
//    }
//
//
//    public FzlchSimple getFzlchSimple(HashMap<String, Object> inmap) {
//        String url = null;
//        if (inmap.containsKey("test")) {
//            //测试用url = "http://192.168.2.104:48081/admin-api/wxFz/getFzStatus";
//            //https://back.smartshopkeeper.com/admin-api/
//            url = "https://back.smartshopkeeper.com/admin-api/wxFz/getFzStatus";
//        } else {
//            //url = "https://oa.cmzg.vip/api/order/pay/wx";
//            url = "https://back.smartshopkeeper.com/admin-api/wxFz/getFzStatus";
//        }
//
//        HashMap<String, Object> postmap = new HashMap<>();
//        postmap.put("mobile", inmap.get("mobile").toString());
//        ResponseEntity<String> responseEntity = null;
//        try {
//            responseEntity = restTemplate.postForEntity(url, postmap, String.class);
//        } catch (Exception e) {
//            log.info("异常");
//        }
//        String confighttp = responseEntity.getBody();
//        FzlchSimple x = JSON.parseObject(confighttp, FzlchSimple.class);
//        return x;
//    }
//
//
//
//
//    public Integer findOrderBytid2(String dbtid2) {
//        String url = "https://back.screen.cmxz.com.cn/index.php/findOrderBytid2?tid2=" + dbtid2;
//        //   String url = "http://121.40.150.13:1112/index.php/gettidby39like?s39likekey=" + s39like;
//        try {
////            URI uri = UriComponentsBuilder.fromUriString("https://back.screen.cmxz.com.cn/index.php/findOrderBytid2")
////                    .queryParam("tid2", dbtid2)
////                    .build()
////                    .toUri();
////            ResponseEntity<HashMap> responseEntity = restTemplate.getForEntity(uri, HashMap.class);
//            ResponseEntity<String> responseEntity = restTemplate.getForEntity(url, String.class);
//            log.info("ss：{}", responseEntity.getBody());
//            String name = responseEntity.getClass().getName();
//
//            ObjectMapper mapper = new ObjectMapper();
//            JsonNode jsonNode = mapper.readTree(responseEntity.getBody());
//
//            // 直接读取可能的双层JSON
//
//
//            if (jsonNode.isTextual()) { // 如果它是文本，说明可能是再次序列化的JSON
//                String actualJson = jsonNode.asText();
//                jsonNode = mapper.readTree(actualJson); // 再解析一次
//            }
//
//            if (jsonNode.has("id")) {
//                int id = jsonNode.get("id").asInt();
//                System.out.println("ID: " + id);
//            } else {
//                System.out.println("JSON does not contain 'id' field.");
//            }
//
//            if (jsonNode.has("detailid")) {
//                int detailid = jsonNode.get("detailid").asInt();
//                System.out.println("detailid: " + detailid);
//                return detailid;
//            } else {
//                System.out.println("JSON does not contain 'id' field.");
//            }
//
//            return null;
//        } catch (Exception e) {
//            log.info("异常");
//        }
//        return null;
//    }
//
//}
